Fibre Channel (FC) is a well known protocol for electronic communication. Fibre Channel networks are often used for storage networking, such as for storage area networks (SANs). Fibre Channel supports three topologies, the most flexible of which is the Switched Fabric topology which provides for the use of one or more switches to connect multiple devices to a network.
Devices that connect to a switched fabric Fibre Channel network usually connect to a specific physical port of a Fibre Channel switch. A port of an FC switch is usually referred to as an F_Port. A single physical port of a Fibre Channel enabled device is usually referred to as an N_Port. Each N_Port can be associated with an identifier referred to as N_Port_ID.
In some cases, it may be considered necessary to have two or more virtual ports at a single physical device port. This may be desirable, for example, if a single computer connected to a switch through a single physical port runs two or more virtual machines. In such a case, a separate virtual port can be used for each virtual machine. Fibre Channel provides a facility referred to as N_Port_ID Virtualization (NPIV) that allows this. More specifically, NPIV allows for multiple N_Port_IDs to be associated with a single physical port. Thus, multiple virtual ports utilizing the single physical port can use the different N_Port_IDs and, as a result, appear in ordinary Fibre Channel communications as multiple N_Ports.
Most existing switches allow a limited number of virtual ports to connect to each physical port of the switch. For example, many existing FC switches provide only 128 N_Port_IDs per physical switch port (or F_Port). This was initially considered more than sufficient for any foreseeable levels of virtualization. However, several recent developments have made this insufficient.
First, the increased use of multiple processor per computer and multiple cores per processor, as well as the ever increasing computational performance of individual cores has made higher levels of virtualization easily reachable. Furthermore, certain blade server systems may provide a single N_Port per blade server enclosure. A blade server enclosure may include dozens of individual computers (blade servers). These computers may communicate with the single N_Port through an internal bus or through an internal Fibre Channel over Ethernet (FCoE) network. Each of these computers may run multiple virtual machines which may require multiple virtual ports (and, therefore, multiple N_Port_IDs).
Thus, in many easily foreseeable cases, one or more thousands of N_Port_IDs may be needed for a single physical N_Port. This is not allowed by most existing Fibre Channel switches.